package com.ruoyi.project.visit.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.web.domain.BaseEntity;
import com.ruoyi.project.his.domain.DoctorDept;

import java.util.Date;
import java.util.Objects;

/**
 * 挂号实体类型。
 */
public class DoctorRegister extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 挂号主键 */
    private Integer registerId;
    /** 挂号编码，使用UUID生成即可。 */
    private String registerNumber;
    /** 患者外键 */
    private Integer registerPatientId;
    /** 挂号种类外键 */
    private Integer registerSystemRegistraFeeId;
    /** 病例外键 */
    private Integer registerHistoryId;
    /** 挂号部门外键 */
    private Integer registerUserId;
    /** 挂号日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registerDate;
    /** 状态 1-待就诊； 2-正在就诊； 3-就诊完成 */
    private String registerStatus;
    /** 挂号时段 ，上午、下午、晚上 */
    private String registerTime;
    /** 患者名字，条件查询使用。其他情况不使用 */
    private String registerPatientName;

    /** 患者 */
    private DoctorPatient doctorPatient;
    /** 科室 */
    private DoctorDept doctorDept;
    /** 挂号类型 */
    private DoctorRegistraFee doctorRegistraFee;
    /** 病例 */
    private DoctorPatientHistory doctorPatientHistory;

    @Override
    public String toString() {
        return "DoctorRegister{" +
                "registerId=" + registerId +
                ", registerNumber='" + registerNumber + '\'' +
                ", registerPatientId=" + registerPatientId +
                ", registerSystemRegistraFeeId=" + registerSystemRegistraFeeId +
                ", registerHistoryId=" + registerHistoryId +
                ", registerUserId=" + registerUserId +
                ", registerDate=" + registerDate +
                ", registerStatus='" + registerStatus + '\'' +
                ", registerTime='" + registerTime + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        DoctorRegister that = (DoctorRegister) o;
        return Objects.equals(registerId, that.registerId) &&
                Objects.equals(registerNumber, that.registerNumber) &&
                Objects.equals(registerPatientId, that.registerPatientId) &&
                Objects.equals(registerSystemRegistraFeeId, that.registerSystemRegistraFeeId) &&
                Objects.equals(registerHistoryId, that.registerHistoryId) &&
                Objects.equals(registerUserId, that.registerUserId) &&
                Objects.equals(registerDate, that.registerDate) &&
                Objects.equals(registerStatus, that.registerStatus) &&
                Objects.equals(registerTime, that.registerTime);
    }

    @Override
    public int hashCode() {
        return Objects.hash(registerId, registerNumber, registerPatientId, registerSystemRegistraFeeId, registerHistoryId, registerUserId, registerDate, registerStatus, registerTime);
    }

    public String getRegisterPatientName() {
        return registerPatientName;
    }

    public void setRegisterPatientName(String registerPatientName) {
        this.registerPatientName = registerPatientName;
    }

    public DoctorPatient getDoctorPatient() {
        return doctorPatient;
    }

    public void setDoctorPatient(DoctorPatient doctorPatient) {
        this.doctorPatient = doctorPatient;
    }

    public DoctorDept getDoctorDept() {
        return doctorDept;
    }

    public void setDoctorDept(DoctorDept doctorDept) {
        this.doctorDept = doctorDept;
    }

    public DoctorRegistraFee getDoctorRegistraFee() {
        return doctorRegistraFee;
    }

    public void setDoctorRegistraFee(DoctorRegistraFee doctorRegistraFee) {
        this.doctorRegistraFee = doctorRegistraFee;
    }

    public DoctorPatientHistory getDoctorPatientHistory() {
        return doctorPatientHistory;
    }

    public void setDoctorPatientHistory(DoctorPatientHistory doctorPatientHistory) {
        this.doctorPatientHistory = doctorPatientHistory;
    }

    public Integer getRegisterId() {
        return registerId;
    }

    public void setRegisterId(Integer registerId) {
        this.registerId = registerId;
    }

    public String getRegisterNumber() {
        return registerNumber;
    }

    public void setRegisterNumber(String registerNumber) {
        this.registerNumber = registerNumber;
    }

    public Integer getRegisterPatientId() {
        return registerPatientId;
    }

    public void setRegisterPatientId(Integer registerPatientId) {
        this.registerPatientId = registerPatientId;
    }

    public Integer getRegisterSystemRegistraFeeId() {
        return registerSystemRegistraFeeId;
    }

    public void setRegisterSystemRegistraFeeId(Integer registerSystemRegistraFeeId) {
        this.registerSystemRegistraFeeId = registerSystemRegistraFeeId;
    }

    public Integer getRegisterHistoryId() {
        return registerHistoryId;
    }

    public void setRegisterHistoryId(Integer registerHistoryId) {
        this.registerHistoryId = registerHistoryId;
    }

    public Integer getRegisterUserId() {
        return registerUserId;
    }

    public void setRegisterUserId(Integer registerUserId) {
        this.registerUserId = registerUserId;
    }

    public Date getRegisterDate() {
        return registerDate;
    }

    public void setRegisterDate(Date registerDate) {
        this.registerDate = registerDate;
    }

    public String getRegisterStatus() {
        return registerStatus;
    }

    public void setRegisterStatus(String registerStatus) {
        this.registerStatus = registerStatus;
    }

    public String getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(String registerTime) {
        this.registerTime = registerTime;
    }
}
